package com.tutorial.demo4stream;

import java.util.ArrayList;
import java.util.List;

/**
 * @author xiaoxiaokui
 * @description: Match 匹配
 * 顾名思义，match 用来做匹配操作，它的返回值是一个 boolean 类型。
 * 通过 match, 我们可以方便的验证一个 list 中是否存在某个类型的元素
 * @date 2019/10/29
 **/
public class Demo4Match {
    public static void main(String[] args) {
        List<String> stringCollection = new ArrayList<>();
        stringCollection.add("ddd2");
        stringCollection.add("aaa2");
        stringCollection.add("bbb1");
        stringCollection.add("aaa1");
        stringCollection.add("bbb3");
        stringCollection.add("ccc");
        stringCollection.add("bbb2");
        stringCollection.add("ddd1");

        // 验证 list 中 string 是否有以 a 开头的, 匹配到第一个，即返回 true
        boolean anyStartsWithA =
                stringCollection
                    .stream()
                    .anyMatch((s) -> s.startsWith("a"));
        System.out.println(anyStartsWithA);

        // 验证 list 中 string 是否都是以 a 开头的
        boolean allStartsWithA =
                stringCollection
                    .stream()
                    .allMatch((s) -> s.startsWith("a"));
        System.out.println(allStartsWithA);

        // 验证 list 中 string 是否都不是以 z 开头的
        boolean noneStartsWithZ =
                stringCollection
                    .stream()
                    .noneMatch((s) -> s.startsWith("z"));
        System.out.println(noneStartsWithZ);

    }
}
